When an Ethernet adapter is shared by multiple threads executing on different logical partitions of a virtualized system, an operating system of each logical partition usually acts as a recipient for all packets destined for various threads in the corresponding logical partition. Packets are then re-routed by the operating system of each partition to the appropriate thread in the corresponding partition. This, however, can create a bottleneck at the operating system in each partition.
In addition, threads that require preferential treatment may not be able to obtain priority sorting because each operating system typically handles packets based on order of arrival. Further, bandwidth and/or response requirements of some threads may not be met if the corresponding operating system is unable to process the packets quick enough. Moreover, one thread could potentially flood the overall flow of packets with, for instance, ping traffic, thereby creating a form of a denial-of-service attack.